/**
 * @param {number[]} nums
 * @return {number}
 * 暴力回溯法
 */
var sumSubseqWidths = function (nums) {
    // 定义回溯函数 找出所有子序列
    function subsets(numArr) {
        const result = []
        function backTrack(start, curr) {
            // 把curr加入result数组
            result.push([...curr])
            for (let i = start; i < nums.length; i++) {
                curr.push(nums[i])
                backTrack(i + 1, curr)
                // 把curr最后一个元素移除
                curr.pop()
            }
        }
        backTrack(0, [])
        return result
    }
    // 去除空集
    let tempArr = subsets(nums)
    tempArr.shift()

    let count = 0
    for (let i = 0; i < tempArr.length; i++) {
        if (tempArr[i].length === 1) {
            continue
        } else {
            count += Math.abs(Math.max(...tempArr[i]) - Math.min(...tempArr[i])) % (Math.pow(10, 9) + 7)
        }
    }
    return count
};